Computer virtualization relates to the creation of a virtualized version of a physical device, such as a server, a storage device, a central processing unit (CPU), a graphics processing unit (GPU), or other computing resources. For instance, a virtual machine (VM) is an emulation of a computer system and can be customized to include, for example, a predefined amount of random access memory (RAM), hard drive storage space, as well as other computing resources that emulate a physical machine. As virtual machines resemble physical computer architectures, virtual machines can provide the equivalent functionality of a physical computer. As such, virtual machines can be executed remotely, in a data center for example, to provide remote desktop computer sessions for employees of an enterprise. Many enterprises have now moved away from offering purely physical desktops for personnel, instead utilizing virtual machines that provide virtual desktop sessions using remote resources.
A remote desktop session host (RDSH) is a computer system configured to provide virtual desktops or remote applications to users through a remote desktop application. Examples of RDSH systems include MICROSOFT® TERMINAL SERVICES, MICROSOFT REMOTE DESKTOP SERVICES, and CITRIX XENAPP®. For example, an RDSH system may allow for multiple users to concurrently connect to the RDSH system using a remote desktop application and interact with a graphical desktop environment, such as the WINDOWS® desktop. Each user could use the graphical desktop environment to execute applications installed on the RDSH system and save files to or edit files stored on the RDSH system. The RDSH system can prevent users from accessing files stored by others using operating system and filesystem permissions. As another example, the RDSH system may allow for multiple users to execute published applications. Published applications are hosted by and executed by the RDSH system. However, the user interface for the published application is rendered in a window within the local desktop environment of the client device, allowing for remotely executed applications to appear to behave largely like local applications.
An RDSH system can be implemented using a VM. For example, a VM with a version of MICROSOFT WINDOWS SERVER® installed may be configured to host MICROSOFT REMOTE DESKTOP SERVICES. Depending on the number of users to be supported and the types of applications provided, multiple VMs may be used to provide an RDSH system.